package io.xxx.xbutler.core.get;

import com.alibaba.fastjson2.JSONObject;
import io.xxx.xbutler.domain.task.PushContext;

/**
 * 将占位符替换成对应的内容
 */
public interface ContentGetter {

    static JSONObject buildMiniProgram(String description, String thumbUrl, String pagePath) {
        return new JSONObject() {{
            put("title", "兴盛优选");
            put("description", description);
            put("thumbUrl", thumbUrl);
            put("pagePath", pagePath);
        }};
    }

    /**
     * 默认在内容校验之前进行替换，但是有一些内容依赖于校验结果，所以可以设置成false，在校验之后进行替换。
     */
    default boolean beforeCheck() {
        return true;
    }

    /**
     * 替换任务明细中的内容，有些内容必须在推送时才能确认推送内容。
     */
    void replaceContent(PushContext context);
}
